//periodMax期数最大值
const numberType = { periodMax: 360 }
export default {
  cutMoneyFiter(amount) {
    if (!amount) {
      return '0.00'
    }
    if (amount.toString().includes(',')) {
      amount = Number(amount.replace(/,/g, ''))
    }
    // 防止负数-号也被算进分割里面
    let isNegative = false
    if (Number.parseInt(amount) < 0) {
      isNegative = true
      amount = Math.abs(amount)
    }
    //强制保留两位小数
    let f = parseFloat(amount)
    if (isNaN(f)) return false
    f = Math.round(amount * 100) / 100
    let s = f.toString()
    let rs = s.indexOf('.')
    if (rs < 0) {
      rs = s.length
      s += '.'
    }
    while (s.length < rs + 1 + 2) {
      s += '0'
    }
    //每三位用一个逗号隔开
    let leftNum = s.split('.')[0]
    const rightNum = '.' + s.split('.')[1]
    let result
    //定义数组记录截取后的价格
    const resultArray = []
    if (leftNum.length > 3) {
      let i = true
      while (i) {
        resultArray.push(leftNum.slice(-3))
        leftNum = leftNum.slice(0, leftNum.length - 3)
        if (leftNum.length < 4) {
          i = false
        }
      }
      //由于从后向前截取，所以从最后一个开始遍历并存到一个新的数组，顺序调换
      const sortArray = []
      for (let i = resultArray.length - 1; i >= 0; i--) {
        sortArray.push(resultArray[i])
      }
      result = leftNum + ',' + sortArray.join(',') + rightNum
    } else {
      result = s
    }
    if (isNegative) result = '-' + result
    else result = result
    //isNegative ? result = '-' + result : result
    return result
  },

  /**
   *@author lxc
   *@description:  //处理万元金额,金额格式化，后面没有00
   *@param:
   *@date: 2023-03-02 14:26:26
   **/
  processingAmount(amount) {
    if (amount.toString().includes(',')) {
      amount = Number(amount.replace(/,/g, ''))
    }

    const am = this.cutMoneyFiter(amount) //cutMoneyFiter(amount)
    const leftNum = am.split('.')[1]
    if (leftNum == '00') return am.split('.')[0]
    else return am
  },
  //只能输入数字限制
  /**
   *@author lxc
   *@description:只能输入数字限制，小数数点
   *@param:输入数据，小数点长度,最大值,如果传空，返回所有不限制
   *@date: 2023-03-02 14:22:43
   **/
  onlyInputNumbersAndDecimal(inputData, decimalLenght, maxValue) {
    //  oninput="value=value.replace(/[^\d,.]/g,'')"
    let data = inputData
      .toString()
      .replace(/\.{2,}/g, '.')
      .replace('.', '$#$')
      .replace(/\./g, '')
      .replace('$#$', '.')
      .replace(/[^\d,.]/g, '')
    if (data.toString().includes('.')) {
      const am = data.toString().split('.') //cutMoneyFiter(amount)
      const righNum = am[1]
      if (righNum.length > decimalLenght) data = am[0] + '.' + righNum.slice(0, decimalLenght)
    }
    if (maxValue) if (data > maxValue) data = maxValue
    return data
  },
  /**
   *@author lxc
   *@description:只能输入数字
   *@param:
   *@date: 2023-03-02 14:30:20
   **/
  onlyInpuNumbers(inputData, key) {
    let data = inputData.toString().replace(/[^\d]/g, '')
    if (key) if (data > numberType[key]) data = numberType[key]
    return data
  },

  /**
   *@author ly
   *@description:所有的传真号码、住宅电话、电话号码只能输入一个+ （）- 空格数字，英文下的括号
   *@param:输入数据，小数点长度
   *@date: 2023-03-02 14:22:43
   **/
  phoneOrFax(inputData) {
    if (!inputData) return inputData
    return inputData
      .toString()
      .replace(/^ /g, '')
      .replace(/\+{2,}/g, '')
      .replace(/[^\d+\- ( )]/g, '')
  }

  // amountHit(data,)
}

// export const cutMoneyFiter = (amount) => {
//     if (!amount) {
//         return '-'
//       }
//       //强制保留两位小数
//       let f = parseFloat(amount)
//       if (isNaN(f)) return false
//       f = Math.round(amount * 100) / 100
//       let s = f.toString()
//       let rs = s.indexOf('.')
//       if (rs < 0) {
//         rs = s.length
//         s += '.'
//       }
//       while (s.length < rs + 1 + 2) {
//         s += '0'
//       }
//       //每三位用一个逗号隔开
//       let leftNum = s.split('.')[0]
//       const rightNum = '.' + s.split('.')[1]
//       let result
//       //定义数组记录截取后的价格
//       const resultArray = []
//       if (leftNum.length > 3) {
//         let i = true
//         while (i) {
//           resultArray.push(leftNum.slice(-3))
//           leftNum = leftNum.slice(0, leftNum.length - 3)
//           if (leftNum.length < 4) {
//             i = false
//           }
//         }
//         //由于从后向前截取，所以从最后一个开始遍历并存到一个新的数组，顺序调换
//         const sortArray = []
//         for (let i = resultArray.length - 1; i >= 0; i--) {
//           sortArray.push(resultArray[i])
//         }
//         result = leftNum + ',' + sortArray.join(',') + rightNum
//       } else {
//         result = s
//       }
//       return result
// }
